home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-1 / Inter.Net 55-1.iso / CBuilder / Setup / BCB / data.z / atalkwsh.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-02-09  |  5.7 KB  |  220 lines

  1. /*++
  2.  
  3. Copyright (c) 1992-1996  Microsoft Corporation
  4.  
  5. Module Name:
  6.  
  7.     wshatalk.h
  8.  
  9. Abstract:
  10.  
  11.     This is the header file for application using Windows Sockets for
  12.     Appletalk.
  13.  
  14. Revision History:
  15.     10 Jul 1992     Initial Version
  16.  
  17. --*/
  18.  
  19. /*
  20.  *      C/C++ Run Time Library - Version 9.0
  21.  *
  22.  *      Copyright (c) 1994, 1998 by Borland International
  23.  *      All Rights Reserved.
  24.  *
  25.  */
  26.  
  27. #ifndef _ATALKWSH_
  28. #define _ATALKWSH_
  29. #define __ATALKWSH_H
  30. #pragma option push -b
  31.  
  32.  
  33. //
  34. //  All protocol types should be specified in the Decimal base
  35. //
  36.  
  37. #define DECIMAL_BASE                            10
  38.  
  39. //
  40. //  Protocol number 0 is invalid in the Appletalk case
  41. //
  42.  
  43. #define ATPROTO_BASE                            (1000 * AF_APPLETALK)
  44. #define SOL_APPLETALK                           (ATPROTO_BASE)
  45.  
  46. #define DDPPROTO_RTMP                           (ATPROTO_BASE + 1)
  47. #define DDPPROTO_NBP                            (ATPROTO_BASE + 2)
  48. #define DDPPROTO_ATP                            (ATPROTO_BASE + 3)
  49. #define DDPPROTO_AEP                            (ATPROTO_BASE + 4)
  50. #define DDPPROTO_RTMPRQ                         (ATPROTO_BASE + 5)
  51. #define DDPPROTO_ZIP                            (ATPROTO_BASE + 6)
  52. #define DDPPROTO_ADSP                           (ATPROTO_BASE + 7)
  53.  
  54. #define DDPPROTO_MAX                            (ATPROTO_BASE + 255)
  55.  
  56. //
  57. //  Define the higher layer appletalk protocol types
  58. //
  59.  
  60. #define ATPROTO_ADSP                    (DDPPROTO_MAX + 1)
  61. #define ATPROTO_ATP                     (DDPPROTO_MAX + 2)
  62. #define ATPROTO_ASP                     (DDPPROTO_MAX + 3)
  63. #define ATPROTO_PAP                     (DDPPROTO_MAX + 4)
  64.  
  65. #define SO_REGISTER_NAME                0xA000
  66. #define SO_DEREGISTER_NAME              0xA001
  67. #define SO_REMOVE_NAME                          SO_DEREGISTER_NAME
  68. #define SO_LOOKUP_NAME                  0xA002
  69. #define SO_CONFIRM_NAME                 0xA003
  70. #define SO_LOOKUP_MYZONE                        0xA004
  71. #define SO_GETMYZONE                            SO_LOOKUP_MYZONE
  72. #define SO_LOOKUP_ZONES                 0xA005
  73. #define SO_GETZONELIST                          SO_LOOKUP_ZONES
  74. #define SO_LOOKUP_ZONES_ON_ADAPTER      0xA006
  75. #define SO_GETLOCALZONES                        SO_LOOKUP_ZONES_ON_ADAPTER
  76. #define SO_LOOKUP_NETDEF_ON_ADAPTER     0xA007
  77. #define SO_GETNETINFO                           SO_LOOKUP_NETDEF_ON_ADAPTER
  78.  
  79. //
  80. //  PAP-specific options
  81. //
  82.  
  83. #define SO_PAP_SET_SERVER_STATUS        0xA007
  84. #define SO_PAP_GET_SERVER_STATUS        0xA008
  85. #define SO_PAP_PRIME_READ                       0xA009
  86.  
  87.  
  88. #define ATADDR_ANY                      0            // Dynamic socket (=0)
  89. #define ATADDR_BROADCAST                0xFF         // Broadcast node id (=ff)
  90.  
  91. //
  92. //      Define flags/error codes peculiar to Appletalk
  93. //
  94.  
  95. #define WSAEMSGPARTIAL                          (WSABASEERR+100)
  96.  
  97.  
  98. //      Maximum pap status size
  99. #define MAX_PAP_STATUS_SIZE                     255
  100. #define MIN_PAP_READ_BUF_SIZE           4096
  101.  
  102. //      These are the unused 4 bytes returned in the PAP status packet. If ever
  103. //      they are to be interpreted, they will be available.
  104. #define PAP_UNUSED_STATUS_BYTES         4
  105.  
  106.  
  107. //
  108. //  SOCKADDR_AT structure
  109. //
  110.  
  111. typedef struct sockaddr_at
  112. {
  113.     USHORT    sat_family;
  114.     USHORT    sat_net;
  115.     UCHAR     sat_node;
  116.     UCHAR     sat_socket;
  117. } SOCKADDR_AT, *PSOCKADDR_AT;
  118.  
  119.  
  120. //
  121. //      ***WARNING***
  122. //      This is defined to be the same as the ATALK ADDRESS defined in atalktdi.h
  123. //      Change this if the other changes.
  124. //
  125.  
  126. typedef union
  127. {
  128. #if defined(_ANONYMOUS_STRUCT)
  129.     struct
  130.     {
  131.         USHORT      Network;
  132.         UCHAR       Node;
  133.         UCHAR       Socket;
  134.     };
  135. #endif
  136.     struct
  137.     {
  138.         USHORT      Network;
  139.         UCHAR       Node;
  140.         UCHAR       Socket;
  141.     } u;
  142.     ULONG       Address;
  143. } WSH_ATALK_ADDRESS, *PWSH_ATALK_ADDRESS;
  144.  
  145. //
  146. //  Typedefs for the various options
  147. //
  148.  
  149. //
  150. //  ***WARNING***:
  151. //  This should be exactly the same as NBP_NAME defined in atalktdi.h
  152. //
  153.  
  154. #define MAX_ENTITY  32
  155. typedef struct
  156. {
  157.     CHAR    ObjectNameLen;
  158.     CHAR    ObjectName[MAX_ENTITY];
  159.     CHAR    TypeNameLen;
  160.     CHAR    TypeName[MAX_ENTITY];
  161.     CHAR    ZoneNameLen;
  162.     CHAR    ZoneName[MAX_ENTITY];
  163. } WSH_NBP_NAME, *PWSH_NBP_NAME;
  164.  
  165. typedef struct
  166. {
  167.         WSH_ATALK_ADDRESS               Address;
  168.         USHORT                                  Enumerator;
  169.         WSH_NBP_NAME                    NbpName;
  170. } WSH_NBP_TUPLE, *PWSH_NBP_TUPLE;
  171.  
  172. typedef WSH_NBP_NAME    WSH_REGISTER_NAME, *PWSH_REGISTER_NAME;
  173. typedef WSH_NBP_NAME    WSH_DEREGISTER_NAME, *PWSH_DEREGISTER_NAME;
  174. typedef WSH_NBP_NAME    WSH_REMOVE_NAME, *PWSH_REMOVE_NAME;
  175.  
  176. typedef struct _WSH_LOOKUP_ZONES
  177. {
  178.     ULONG   NoZones;
  179.  
  180.     //
  181.     //  CHAR    Zones[] - null separated zones
  182.     //
  183.  
  184. } WSH_LOOKUP_ZONES, *PWSH_LOOKUP_ZONES;
  185.  
  186. typedef struct _WSH_LOOKUP_NETDEF_ON_ADAPTER
  187. {
  188.         USHORT  NetworkRangeLowerEnd;
  189.         USHORT  NetworkRangeUpperEnd;
  190.  
  191.         //      This will be followed by a null terminated ansi default zone.
  192.         //      PUCHAR  DefaultZone[]
  193.  
  194. } WSH_LOOKUP_NETDEF_ON_ADAPTER , *PWSH_LOOKUP_NETDEF_ON_ADAPTER;
  195.  
  196. typedef struct _WSH_LOOKUP_NAME
  197. {
  198.     WSH_NBP_TUPLE    LookupTuple;
  199.     ULONG   NoTuples;
  200.  
  201.     //
  202.     //  Array of NoTuple WSH_NBP_TUPLEs
  203.     //
  204.  
  205. } WSH_LOOKUP_NAME, *PWSH_LOOKUP_NAME;
  206.  
  207. typedef struct _WSH_PAP_GET_SERVER_STATUS
  208. {
  209.         SOCKADDR_AT                     ServerAddr;
  210.         UCHAR                           Reserved[PAP_UNUSED_STATUS_BYTES];
  211.         UCHAR                           ServerStatus[MAX_PAP_STATUS_SIZE+1];
  212.  
  213. } WSH_PAP_GET_SERVER_STATUS, *PWSH_PAP_GET_SERVER_STATUS;
  214.  
  215.  
  216. #pragma option pop
  217. #endif  // _ATALKWSH_
  218.  
  219.  
  220.